package com.designPattern.constructor;

/**
 * @author mxs
 * 【建造者模式】
 * 这里的对象时【指挥者】
 * 【责任】通过获取建造者，调用初始化对象的方法
 * 这个类意义是让外部（client用户）可以不必要知道建造的具体细节，
 * 只需要传入建造者
 * 调用createHouse()方法就可以直接创建对象
 * 相当于：我只需要知道我想要什么样的房子，具体怎么样的建造方式可以直接交给建造者去完成
 */
public class Director {
    HouseBuilder houseBuilder = null;

    public Director(HouseBuilder houseBuilder) {
        this.houseBuilder = houseBuilder;
    }

    public void setHouseBuilder(HouseBuilder houseBuilder) {
        this.houseBuilder = houseBuilder;
    }

    public House createHouse(){
        House house = houseBuilder.buildHouse();
        return house;
    }

}
